From: Matthias Clasen Date: Wed, 27 Jan 2021 03:17:57 +0000 (-0500) Subject: searchentry: Capture events in the bubble phase X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1~1^2~83^2^2~477^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=7db60f958d50396d55896333fc727ccdcd635100;p=gtk4.git searchentry: Capture events in the bubble phase This is an unfortunate naming clash, but it avoids an event handling clash between the capture widget and its children. Fixes: #3098 --- diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c index 48bdf5a9f4..8b03286a02 100644 --- a/gtk/gtksearchentry.c +++ b/gtk/gtksearchentry.c @@ -667,6 +667,14 @@ capture_widget_key_handled (GtkEventControllerKey *controller, * If the entry is part of a #GtkSearchBar, it is preferable * to call gtk_search_bar_set_key_capture_widget() instead, which * will reveal the entry in addition to triggering the search entry. + * + * Note that despite the name of this function, the events + * are only 'captured' in the bubble phase, which means that + * editable child widgets of @widget will receive text input + * before it gets captured. If that is not desired, you can + * capture and forward the events yourself with + * gtk_event_controller_key_forward(). + **/ void gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry, @@ -692,7 +700,7 @@ gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry, entry->capture_widget_controller = gtk_event_controller_key_new (); gtk_event_controller_set_propagation_phase (entry->capture_widget_controller, - GTK_PHASE_CAPTURE); + GTK_PHASE_BUBBLE); g_signal_connect (entry->capture_widget_controller, "key-pressed", G_CALLBACK (capture_widget_key_handled), entry); g_signal_connect (entry->capture_widget_controller, "key-released",